const db = wx.cloud.database();
const PAGE_SIZE = 20; // 每页数据数量

Page({
  data: {
    user: {},
    orderList: [],
    totalIncome: 0.0,
    hasData: true,
    timestamp1: '',
    detailContent: '', // 弹窗展示的详情内容
    currentPage: 1, // 当前页数
  },

  onShow() {
    this.loadData(); // 直接加载数据，不需要传递参数
  },

  loadData() {
    const user = wx.getStorageSync('user') || {};
    this.setData({ user });
    const userId = user; // 获取用户ID
    console.log(userId)
    // 计算需要跳过的数据量
    const skip = (this.data.currentPage - 1) * PAGE_SIZE;

    // 查询数据库中符合条件的订单数据
    db.collection('zyzl_recommandorder')
      .where({
        user: userId // 根据用户ID匹配数据
      })
      .orderBy('timestamp', 'desc')
      .skip(skip)
      .limit(PAGE_SIZE)
      .get()
      .then(res => {
        if (res.data.length > 0) {
          // 如果有数据，将新获取的数据与之前的数据合并
          const newOrders = res.data.map(item => ({
            ...item,
            timestamp: this.formatTimestamp(item.timestamp) // 格式化时间戳
          }));
          const mergedOrders = this.data.orderList.concat(newOrders);
          // 更新数据并重新渲染视图
          this.setData({
            orderList: mergedOrders
          });
        } else {
          // 如果没有数据，可能是已经加载完毕了，也可能是没有数据
          // 如果没有数据了，可以根据业务逻辑来进行相应的处理
          if (this.data.currentPage === 1) {
            // 如果是第一页没有数据，显示相应提示
            this.setData({
              orderList: [],
              hasData: false
            });
          } else {
            // 如果不是第一页没有数据，则说明已经加载完毕
            console.log('没有更多数据了');
          }
        }
      })
      .catch(err => {
        console.error('查询订单数据失败', err);
        // 处理错误情况
        wx.showToast({
          title: '数据加载失败，请稍后重试',
          icon: 'none'
        });
      });
  },

  formatTimestamp(timestamp) {
    const date = new Date(timestamp);
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hours = date.getHours().toString().padStart(2, '0');
    const minutes = date.getMinutes().toString().padStart(2, '0');
    const seconds = date.getSeconds().toString().padStart(2, '0');
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  },

  onReachBottom() {
    // 当滚动到底部时加载下一页数据
    const nextPage = this.data.currentPage + 1;
    this.setData({
      currentPage: nextPage
    });
    this.loadData();
  },

  showDetail(e) {
    const content = e.currentTarget.dataset.content;
    wx.showModal({
      title: '推荐结果详情',
      content: content,
      showCancel: false
    });
  }
});
